package top.wuyongshi.model;


import java.io.Serializable;

/**
 * @author 郑明亮
 * @Time 2017年1月29日 下午3:36:46
 * @Description <p> 所有VO都会共用的一些属性和方法，主要是分页和排序 </P>
 * @version 1.0  
 */
public class CommonVO implements Serializable{
	
	/**
	 * @author 郑明亮
	 * @Email zhengmingliang911@gmail.com
	 * @Time 2017年2月26日 下午9:40:22
	 * @Description <p>  </P>
	 * @version 1.0  
	 */
	private static final long serialVersionUID = 774424266674657430L;

	/**
	 * @author 郑明亮
	 * @Email zhengmingliang911@gmail.com
	 * @Time 2017年1月29日 下午3:31:53
	 * @Description <p>ASC 升序or DESC降序，默认为DESC降序  </P>
	 * @version 1.0  
	 */
	protected String order = "DESC";
	
	/**
	 * @author 郑明亮
	 * @Email zhengmingliang911@gmail.com
	 * @Time 2017年1月29日 下午3:32:47
	 * @Description <p>按照哪个字段进行排序，默认为自增id  </P>
	 * @version 1.0  
	 */
	protected String by = "id";
	/**
	 * @author 郑明亮
	 * @Email zhengmingliang911@gmail.com
	 * @Time 2017年1月29日 下午2:40:58
	 * @Description <p>
	 *              当前页
	 *              </P>
	 * @version 1.0
	 */
	protected  int pageNo = 1;
	/**
	 * @author 郑明亮
	 * @Email zhengmingliang911@gmail.com
	 * @Time 2017年1月29日 下午2:41:15
	 * @Description <p>
	 *              每页多少条记录，最大为每页50条记录
	 *              </P>
	 * @version 1.0
	 * TODO 遗留问题：当多个人访问时，如果不加pageSize属性，则可能是别人请求的pageSize
	 */
	protected  int pageSize = 10;
	
	/**
	 * @author 郑明亮
	 * @Email zhengmingliang911@gmail.com
	 * @Time：2017年1月29日 下午2:40:35
	 * @Description <p>
	 *              从第多少行开始查询
	 *              </P>
	 * @return
	 */
	protected  int startRow ;
	
	/**
	 * @author 郑明亮
	 * @Email zhengmingliang911@gmail.com
	 * @Time：2017年1月29日 下午11:30:11
	 * @Description <p>计算从第多少行数据开始查询，当一次查询总次数超过50时，则也只允许查询50条  </P>
	 * @return
	 */
	public  int getStartRow() {
		if (pageSize > 50) {// 当一次数据请求量超过50条时，则修改成50条
			pageSize = 50;
		}
		startRow = (pageNo - 1) * pageSize;
		return startRow;
	}

	/**
	 * @return the pageNo
	 */
	public int getPageNo() {
		return pageNo;
	}

	/**
	 * @param pageNo
	 *            the pageNo to set
	 */
	public void setPageNo(int pageNo) {
		this.pageNo = pageNo;
	}

	/**
	 * @return the pageSize
	 */
	public int getPageSize() {
		return pageSize > 50  ?  50 : pageSize; //防止pageSize一次性请求数据过大
	}

	/**
	 * @param pageSize
	 *            the pageSize to set
	 */
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	/**
	 * @return the order
	 */
	public String getOrder() {
		return order;
	}

	/**
	 * @param order the order to set
	 */
	public void setOrder(String order) {
		this.order = order;
	}

	/**
	 * @return the by
	 */
	public String getBy() {
		return by;
	}

	/**
	 * @param by the by to set
	 */
	public void setBy(String by) {
		this.by = by;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "CommonVO [order=" + order + ", by=" + by + ", pageNo=" + pageNo
				+ ", pageSize=" + pageSize + "]";
	}

}
